吴宏东 - 记于2018年06月22日 - 博客 https://segmentfault.com/u/wu...
Linux 存储管理
磁盘分区
硬盘分类
机械硬盘:主要由盘片、磁头、转轴等机械部件组成;
固态硬盘:主要由固态电子存储芯片阵列制成,无机械部件;
硬盘接口
SCSI:应用于商业级关键数据大容量存储;
SAS:支持SATA磁盘,性价比最高,业界公认可以取代SCSI;
SATA:应用于非关键数据的大容量存储;
磁盘分区
查看当前系统有多少个硬盘以及各有多少个分区。
[root@master1 ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdb1
以上输出结果,可知系统有2个硬盘分别是sda和sdb,硬盘sda有3个分区,sda1、sda2、sda3;
使用fdisk分区工具进行磁盘分区
[root@master1 ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000cdd4e
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 17133567 8258560 82 Linux swap / Solaris
/dev/sda3 17133568 209715199 96290816 83 Linux
以上输出结果,可知硬盘空间有107.4 GB,分区sda1的文件系统类型是Linux,接着可以输入以下各种参数代码:
[n] 创建一个新的分区,p为主分区,e为扩展分区,分区号和起始扇区按默认回车;
[t] 更改分区类型,选择分区号,输入类型代码,Linux=83,Linux LVM=8e,Linux swap/solaris=82;
[d] 删除分区;
[p] 不保存,退出;
[w] 保存退出;
如果更新了分区表,需要通知系统内核重新读取分区表。
partprobe /dev/sda;
逻辑卷
基本概念
[PV] 物理卷,可以是磁盘或分区,处于最底层;
[VG] 卷组,一个或多个物理卷组成;
[LV] 逻辑卷,卷组切出来的空间,可以伸缩;
[PE] 物理区域,创建物理卷时指定,默认为4M;
[LE] 逻辑区域,与PE一致;
管理
# 查看所有物理卷、卷组、逻辑卷列表
pvs;
vgs;
lvs;
# 创建2个物理卷
pvcreate /dev/sdb2 /dev/dsb3;
# 创建一个名为data的卷组,添加2个物理卷
vgcreate data /dev/sdb2 /dev/dsb3;
# 在data卷组创建名为docker大小为100G的逻辑卷
lvcreate -L 100G -n docker data;
# 查看卷信息
pvdisplay /dev/sdb2;
vgdisplay data;
lvdisplay /dev/data/docker;
# 卷组缩减和扩展
vgreduce data /dev/dsb3;
vgextend data /dev/dsb3;
# 扩展、缩减逻辑卷 /dev/vg名/lv名
lvextend -L +50G /dev/data/docker;
lvreduce -L -50G /dev/data/docker;
文件系统
命令 mkfs
# 在第二块硬盘第一个分区创建xfs文件系统
mkfs -t xfs /dev/sdb1;
mkfs.xfs /dev/sdb1;
# 在卷组data上的docker逻辑卷创建xfs文件系统
mkfs -t xfs /dev/data/docker;
命令 mount
在磁盘分区或逻辑卷上创建文件系统后,就可以使用mount挂载逻辑卷到系统的目录;
# 查看系统已经挂载的文件系统
mount;
# 将逻辑卷/dev/data/docker挂载到系统目录/opt/docker
mmount /dev/data/docker /opt/docker;
# 编辑/etc/fstab文件,增加挂载点,以便系统启动后能够自动挂载
vi /etc/fstab;
# 使挂载生效
mount -a;
命令 umount
卸载文件系统,格式:umount <设备名或挂载点>
# 查看哪些进程在使用挂载点
fuser -cu /opt/docker;
# 杀死这些进程
fuser -ck /opt/docker;
# 卸载
umount /dev/data/docker;
umount /opt/docker;
磁盘限额
方式一:限制用户或组的inode(文件数);
方式二:限制用户或组的磁盘空间;
Linux默认使用的文件系统是xfs,所以使用xfsprogs的xfs_quota软件包提供设置;
命令 xfs_quota
# 启动文件系统的quota挂载选项
vi /etc/fstab;
# 在defaults后追加uquota,gquota,用逗号隔开,如
# /dev/mapper/centos-root / xfs defaults,uquota,gquota 0 0
# 重新挂载文件系统,不能使用-o remount,因为xfs系统必须在第一次挂载时才启用quota
umount /;
mount /;
# 给用户wuhd设置容量软限制50M,应限制60M,文件数软限制2000,硬限制2500
xfs_quota -x -c 'limit -u bsoft=50M bhard=60M isoft=2000 ihard=2500 wuhd' /;
# 查看容量限额设置
xfs_quota -c 'quota -uv wuhd' /;
# 查看文件数限额设置
xfs_quota -c 'quota -i -uv wuhd' /;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。